package com.by.bean;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;

@Data
@ApiModel("支付信息")
@TableName(value = "pay_info")
public class PayInfo {
    @TableId(value = "id")
    @ApiModelProperty(name = "支付信息ID", notes = "主键，唯一标识支付记录")
    private Integer id;

    @ApiModelProperty(name = "创建人", notes = "记录创建人的用户ID（如管理员或系统自动生成）")
    private String createBy;

    @ApiModelProperty(name = "创建时间", notes = "支付记录的创建时间（格式：yyyy-MM-dd HH:mm:ss）")
    private Date createTime;

    @ApiModelProperty(name = "删除标志", notes = "逻辑删除标记（0-未删除，1-已删除）")
    private Integer deleteFlag;

    @ApiModelProperty(name = "更新人", notes = "最近修改记录的用户ID")
    private String updateBy;

    @ApiModelProperty(name = "更新时间", notes = "支付记录的最后修改时间（格式：yyyy-MM-dd HH:mm:ss）")
    private Date updateTime;

    @ApiModelProperty(name = "客户端类型", notes = "发起支付的客户端类型（如APP/PC/H5）")
    private Integer clientType;

    @ApiModelProperty(name = "支付金额", notes = "实际支付金额（单位：元）")
    private Double flowPrice;

    @ApiModelProperty(name = "会员ID", notes = "关联会员表的用户ID")
    private String memberId;

    @ApiModelProperty(name = "会员名称", notes = "支付用户的昵称或真实姓名")
    private String memberName;

    @ApiModelProperty(name = "订单类型", notes = "关联的业务订单类型（如商品订单/服务订单/充值订单）")
    private Integer orderType;

    @ApiModelProperty(name = "支付订单号", notes = "第三方支付平台生成的唯一订单号（如微信/支付宝订单号）")
    private String payOrderNo;

    @ApiModelProperty(name = "支付状态", notes = "支付结果状态（1 SUCCESS-成功，-1 FAIL-失败，0 PROCESSING-处理中）")
    private Integer payStatus;

    @ApiModelProperty(name = "支付方式", notes = "支付渠道（如WECHAT-微信，ALIPAY-支付宝，BALANCE-余额支付）")
    private PaymentMethod paymentMethod;

    @ApiModelProperty(name = "支付时间", notes = "用户实际完成支付的时间（格式：yyyy-MM-dd HH:mm:ss）")
    private Date paymentTime;

    @ApiModelProperty(name = "应收单号", notes = "关联财务应收款单号（用于对账）")
    private String receivableNo;

    @ApiModelProperty(name = "业务流水号", notes = "系统内部生成的唯一业务流水号（如订单号或充值单号）")
    private String sn;

    @ApiModelProperty(name = "店铺ID", notes = "关联店铺表的店铺ID（如果是店铺订单）")
    private String storeId;

    @ApiModelProperty(name = "店铺名称", notes = "订单关联的店铺名称（冗余字段，便于展示）")
    private String storeName;

    @ApiModelProperty(name = "交易流水号", notes = "系统内部交易流水号（全局唯一，用于幂等性校验）")
    private String tradeSn;
}